/*
 * 文件名： PayMsgBody.java
 * 
 * 工程名称: common-domain
 *
 * Gopay
 *
 * 创建日期： 2017年5月12日
 *
 * Copyright(C) 2017, by www.gopay.com.cn Inc.All rights reserved.
 *
 * 原始作者: 宣广海
 *
 */
package com.gopay.common.domain.bank.wechat.wcpay.cmbc;

import java.io.Serializable;
import java.math.BigDecimal;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 *	支付报文体对象
 *
 * @author 宣广海
 *
 * @version 
 *
 * @since 2017年5月12日
 */
@XStreamAlias("body")
public class PayMsgBody implements Serializable{

	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = 8993579005319780216L;
	
	/**
	 * 银行商户编码
	 */
	private String merchantCode;

	/**
	 * 订单金额:订单总金额,接口中涉及的金额默认以元为单位，精确到分，默认币种为人民币
	 */
	private BigDecimal totalAmount;

	/**
	 * 订单标题
	 */
	private String subject;

	/**
	 * 订单描述
	 */
	private String desc;

	/**
	 * 商户操作员编号
	 */
	private String operatorId;

	/**
	 * 商户门店编号
	 */
	private String storeId;

	/**
	 * 商户机具终端编号
	 */
	private String terminalId;

	/**
	 * 指定支付方式:目前仅当微信支付模式下可用。 1-限定不能使用信用卡支付
	 */
	private String limitPay;
	
	/**
	 * 合作方微信公众账号ID
	 */
	private String subAppid;
	/**
	 * 用户ID
	 */
	private String userId;
	
	/**
	 * 支付宝渠道可选上送，该参数是支付宝分配给下游的pid识别号，2088开头的一串16位数字,
	 * 对应支付宝的sys_service_provider_id字段 ； 微信目前用不到该参数。
	 * 
	 */
	private String source;
	/**
	 * 商品标记,支付宝目前不用上送
	 */
	private String goodsTag;
	
	/**
	 * 指定订单的支付有效时间（分钟数），超过有效时间用户将无法支付。若不指定该参数则系统默认设置24小时支付有效时间。参数允许设置范围：1-1440区间的整数值，超过1440默认设置1440
	 */
	private Integer expireTime;
	/**
	 * 微信jsapi字符串
	 */
	private String wxjsapiStr;
	/**
	 * 支付宝支付渠道流水
	 */
	private String channelNo;
	/**
	 * 会话标志
	 */
	private String prepayId;
	
	private String extend1;

	private String extend2;

	private String extend3;

	public String getMerchantCode() {
		return merchantCode;
	}

	public void setMerchantCode(String merchantCode) {
		this.merchantCode = merchantCode;
	}

	public BigDecimal getTotalAmount() {
		return totalAmount;
	}

	public void setTotalAmount(BigDecimal totalAmount) {
		this.totalAmount = totalAmount;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getDesc() {
		return desc;
	}

	public void setDesc(String desc) {
		this.desc = desc;
	}

	public String getOperatorId() {
		return operatorId;
	}

	public void setOperatorId(String operatorId) {
		this.operatorId = operatorId;
	}

	public String getStoreId() {
		return storeId;
	}

	public void setStoreId(String storeId) {
		this.storeId = storeId;
	}

	public String getTerminalId() {
		return terminalId;
	}

	public void setTerminalId(String terminalId) {
		this.terminalId = terminalId;
	}

	public String getLimitPay() {
		return limitPay;
	}

	public void setLimitPay(String limitPay) {
		this.limitPay = limitPay;
	}

	public String getSubAppid() {
		return subAppid;
	}

	public void setSubAppid(String subAppid) {
		this.subAppid = subAppid;
	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getSource() {
		return source;
	}

	public void setSource(String source) {
		this.source = source;
	}

	public String getGoodsTag() {
		return goodsTag;
	}

	public void setGoodsTag(String goodsTag) {
		this.goodsTag = goodsTag;
	}

	public Integer getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(Integer expireTime) {
		this.expireTime = expireTime;
	}

	public String getWxjsapiStr() {
		return wxjsapiStr;
	}

	public void setWxjsapiStr(String wxjsapiStr) {
		this.wxjsapiStr = wxjsapiStr;
	}

	public String getChannelNo() {
		return channelNo;
	}

	public void setChannelNo(String channelNo) {
		this.channelNo = channelNo;
	}

	public String getPrepayId() {
		return prepayId;
	}

	public void setPrepayId(String prepayId) {
		this.prepayId = prepayId;
	}

	public String getExtend1() {
		return extend1;
	}

	public void setExtend1(String extend1) {
		this.extend1 = extend1;
	}

	public String getExtend2() {
		return extend2;
	}

	public void setExtend2(String extend2) {
		this.extend2 = extend2;
	}

	public String getExtend3() {
		return extend3;
	}

	public void setExtend3(String extend3) {
		this.extend3 = extend3;
	}

}
